欧美一区2区三区4区公司二百,国产精品婷婷午夜在线观看,自拍偷拍亚洲精品,国产美女诱惑一区二区

MySQL日志管理

1 MySQL日志

1.1 錯(cuò)誤日志

文件名:可用–log-error[=file_name]指定,否則默認(rèn)使用hostname.err

內(nèi)容:記錄mysqld啟動(dòng)和停止時(shí),以及服務(wù)器發(fā)生任何嚴(yán)重錯(cuò)誤時(shí)記錄相關(guān)信息

1.2 二進(jìn)制日志

文件名:也是binlog(邏輯日志),可用–log-bin[=file_name] 指定,默認(rèn)為主機(jī)名

內(nèi)容:包含了所有更新了或者潛在更新了數(shù)據(jù)的所有語(yǔ)句,語(yǔ)句以“事件”的形式保存,描述數(shù)據(jù)更改文件位置和格式

查看日志:

mysqlbinlog log-file

刪除日志:

#刪除所有的binlog日志,新日志從頭開(kāi)始編號(hào)
RESET MASTER
#刪除mysql-bin.010之前的所有日志
PURGE MASTER LOGS TO 'mysql-bin.010'
#刪除2022.5.1之前的binlog日志
purge master logs before '2022-05-01 08:00:00';

1.3 查詢(xún)?nèi)罩?/h4>

文件名:使用–log指定,默認(rèn)hostname.log

內(nèi)容:記錄客戶(hù)端所有查詢(xún)語(yǔ)句記錄,在二進(jìn)制日志不存在查詢(xún)語(yǔ)句記錄

1.4 慢查詢(xún)?nèi)罩?/h4>

文件名:使用–log-slow-querie指定,默認(rèn)*-slow.log,寫(xiě)入data目錄

內(nèi)容:記錄執(zhí)行時(shí)間超過(guò)long_query_time秒的SQL查詢(xún)?nèi)罩疚募?/p>

其它選項(xiàng):–log_slow_admin_statements:表示將慢管理語(yǔ)句,如OPTIMIZE TABLE、ANALYZE TABLE和ALTER TABLE寫(xiě)入慢查詢(xún)語(yǔ)句

1.5 通用查詢(xún)?nèi)罩?/h4>

查看:show variables like '%general_log%';

執(zhí)行SQL命令 set global general_log=on; 開(kāi)啟

文件:默認(rèn)存放在data目錄下hostname.log文件

內(nèi)容:記錄客戶(hù)端的所有查詢(xún)行為

1.6 中繼日志

文件:默認(rèn)文件名hostnamet-relay-bin,存放在data目錄下

功能:從服務(wù)器I/O線(xiàn)程將主服務(wù)器的二進(jìn)制日志讀取過(guò)來(lái)記錄到從服務(wù)器本地文件,然后從服務(wù)器SQL線(xiàn)程會(huì)讀取relay-log日志的內(nèi)容并應(yīng)用到從服務(wù)器,從而使從服務(wù)器和主服務(wù)器的數(shù)據(jù)保持一致

參數(shù):show variables like '%relay%';

  • max_relay_log_size
    • relay log 允許的最大值,如果該值為0,則默認(rèn)值為 max_binlog_size (1G)
    • 如果不為0,則 max_relay_log_size 則為最大的relay_log文件大小
  • relay_log
    • 定義 relay_log 的位置和名稱(chēng),如果值為空,則默認(rèn)位置在數(shù)據(jù)文件的目錄
  • relay_log_index
    • 定義 relay_log 索引的位置和名稱(chēng),記錄有幾個(gè) relay_log 文件,默認(rèn)為2個(gè)
  • relay_log_info_file
    • 定義 relay-log.info 的位置和名稱(chēng),relay-log.info 記錄 master 主庫(kù)的 binary_log 的恢復(fù)位置和 從庫(kù) relay_log 的位置
  • relay_log_purge
    • 是否自動(dòng)清空中繼日志,默認(rèn)值為1(啟用)
  • relay_log_recovery
    • 當(dāng)slave從庫(kù)宕機(jī)后,假如relay-log損壞了,導(dǎo)致一部分中繼日志沒(méi)有處理,則自動(dòng)放棄所有未執(zhí)行的relay-log,并且重新從master上獲取日志,這樣就保證了relay-log的完整性。默認(rèn)情況下該功能是關(guān)閉的,將relay_log_recovery的值設(shè)置為 1時(shí),可在slave從庫(kù)上開(kāi)啟該功能,建議開(kāi)啟
  • sync_relay_log
    • 當(dāng)設(shè)置為1時(shí),slave的I/O線(xiàn)程每次接收到master發(fā)送過(guò)來(lái)的binlog日志都要寫(xiě)入系統(tǒng)緩沖區(qū),然后刷入relay log中繼日志里,這樣是最安全的,因?yàn)樵诒罎⒌臅r(shí)候,你最多會(huì)丟失一個(gè)事務(wù),但會(huì)造成磁盤(pán)的大量I/O
    • 當(dāng)設(shè)置為0時(shí),并不是馬上就刷入中繼日志里,而是由操作系統(tǒng)決定何時(shí)來(lái)寫(xiě)入,雖然安全性降低了,但減少了大量的磁盤(pán)I/O操作。這個(gè)值默認(rèn)是0,可動(dòng)態(tài)修改
  • sync_relay_log_info
    • 這個(gè)參數(shù)和 sync_relay_log 參數(shù)一樣

1.7 審計(jì)日志

內(nèi)容:企業(yè)版自帶功能,社區(qū)版需使用audit審計(jì)插件完成數(shù)據(jù)庫(kù)審計(jì)工作

開(kāi)啟步驟:

  • 下載插件:https://github.com/mcafee/mysql-audit

  • 查看插件功能是否開(kāi)啟: show variables like "%audit%";

  • 開(kāi)啟插件功能:set global audit_json_file=1;

    注意,使用此方法開(kāi)啟對(duì)global全局變量的設(shè)置僅對(duì)于新開(kāi)啟的會(huì)話(huà)才是有效的,對(duì)已經(jīng)開(kāi)啟的會(huì)話(huà)不生效,參數(shù)最終需持久化到my.cnf配置文件中

  • 開(kāi)啟后,在MySQL數(shù)據(jù)目錄下會(huì)多出一個(gè)mysql-audit.json審計(jì)日志

2 InnoDB日志

2.1 重做日志 (Redo Log)

文件:默認(rèn)情況下,對(duì)應(yīng)的物理文件位于數(shù)據(jù)庫(kù)的data目錄下的ib_logfile1&ib_logfile2

內(nèi)容:物理日志,記錄物理數(shù)據(jù)頁(yè)面的修改信息,redo log順序?qū)懭雛edo log file物理文件中

重做日志有一個(gè)緩沖區(qū)Innodb_log_buffer,InnoDB優(yōu)先將重做日志寫(xiě)入緩沖區(qū),日志寫(xiě)盤(pán)通常有三種方式:

  • Master Thread 每秒一次執(zhí)行刷新Innodb_log_buffer到重做日志文件

  • 每個(gè)事務(wù)提交時(shí)會(huì)將重做日志刷新到重做日志文件。

  • 當(dāng)重做日志緩存可用空間 少于一半時(shí),重做日志緩存被刷新到重做日志文件

因此,重做日志的寫(xiě)盤(pán),并不一定是隨著事務(wù)的提交才寫(xiě)入重做日志文件的,而是隨著事務(wù)的開(kāi)始逐步開(kāi)始的,這可以很好地解釋再大的事務(wù)的提交(commit)的時(shí)間也是很短暫的

事務(wù)產(chǎn)生的重做日志,通過(guò)innodb_flush_log_at_trx_commit參數(shù)控制:

  • 設(shè)置為 0 的時(shí)候,表示不寫(xiě)入buffer,直接每秒寫(xiě)入到redo file中,但mysql 崩潰會(huì)丟失1s數(shù)據(jù)
  • 設(shè)置為 1 的時(shí)候,表示每次事務(wù)提交時(shí)都將 redo log 直接持久化到磁盤(pán)
  • 設(shè)置為 2 的時(shí)候,表示每次事務(wù)提交時(shí)都只是把 redo log 寫(xiě)到 page cache,由OS處理回寫(xiě)磁盤(pán)操作,OS宕機(jī)會(huì)丟失數(shù)據(jù)

2.2 回滾日志(Undo Log)

文件:邏輯日志,記錄在表空間中

  • MySQL5.6之前,undo表空間位于共享表空間的回滾段中,共享表空間的默認(rèn)的名稱(chēng)是ibdata,位于數(shù)據(jù)文件目錄中

  • MySQL5.6之后,undo表空間可以配置成獨(dú)立的文件,但是提前需要在配置文件中配置,完成數(shù)據(jù)庫(kù)初始化后生效且不可改變undo log文件的個(gè)數(shù)

內(nèi)容:記錄數(shù)據(jù)的邏輯變化,一條INSERT會(huì)對(duì)應(yīng)一條DELETE的undo log,發(fā)生錯(cuò)誤時(shí)能夠恢復(fù)到事務(wù)之前的數(shù)據(jù)狀態(tài)

undo log是MVCC(多版本并發(fā)控制)實(shí)現(xiàn)的關(guān)鍵

MySQL日志管理

文章鏈接: http://m.qzkangyuan.com/9692.html

文章標(biāo)題:MySQL日志管理

文章版權(quán):夢(mèng)飛科技所發(fā)布的內(nèi)容,部分為原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明來(lái)源,網(wǎng)絡(luò)轉(zhuǎn)載文章如有侵權(quán)請(qǐng)聯(lián)系我們!

聲明:本站所有文章,如無(wú)特殊說(shuō)明或標(biāo)注,均為本站原創(chuàng)發(fā)布。任何個(gè)人或組織,在未征得本站同意時(shí),禁止復(fù)制、盜用、采集、發(fā)布本站內(nèi)容到任何網(wǎng)站、書(shū)籍等各類(lèi)媒體平臺(tái)。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。

給TA打賞
共{{data.count}}人
人已打賞
建站教程投稿分享

MySQL索引創(chuàng)建與維護(hù)

2022-9-5 15:20:28

建站教程投稿分享

MySQL事務(wù)

2022-9-6 12:46:39

0 條回復(fù) A文章作者 M管理員
    暫無(wú)討論,說(shuō)說(shuō)你的看法吧
?
個(gè)人中心
購(gòu)物車(chē)
優(yōu)惠劵
今日簽到
有新私信 私信列表
搜索
主站蜘蛛池模板: 赣榆县| 龙江县| 自贡市| 时尚| 西贡区| 东平县| 大新县| 长寿区| 巫溪县| 乡宁县| 鄂温| 宜宾市| 沂南县| 深泽县| 杭锦后旗| 平凉市| 南澳县| 呼玛县| 龙州县| 商洛市| 杭锦后旗| 上饶县| 台江县| 无锡市| 滕州市| 腾冲县| 兴海县| 长宁区| 蕲春县| 五家渠市| 白城市| 南京市| 云林县| 交城县| 黑龙江省| 灯塔市| 西青区| 长寿区| 武川县| 汉寿县| 枞阳县|